Return to start page
Core/Maths/Library Index.j
1 library ALibraryCoreMathsIndex requires optional ALibraryCoreDebugMisc
2
3 /// @todo private causes an error
4 debug function DebugCheckIndex takes integer index returns nothing
5 debug if (index > JASS_MAX_ARRAY_SIZE) then
6 debug call Print("Index is too high: " + I2S(index))
7 debug endif
8 debug endfunction
9
10 function Index2D takes integer value0, integer value1, integer maxValue1 returns integer
11 local integer index = (value0 * maxValue1) + value1
12 debug call DebugCheckIndex(index)
13 return index
14 endfunction
15
16 function Index3D takes integer value0, integer value1, integer value2, integer maxValue1, integer maxValue2 returns integer
17 local integer index = (value0 * (maxValue1 * maxValue2)) + (value1 * maxValue2) + value2
18 debug call DebugCheckIndex(index)
19 return index
20 endfunction
21
22 function Index4D takes integer value0, integer value1, integer value2, integer value3, integer maxValue1, integer maxValue2, integer maxValue3 returns integer
23 local integer index = (value0 * (maxValue1 * maxValue2 * maxValue3)) + (value1 * (maxValue2 * maxValue3)) + (value2 * maxValue3) + value3
24 debug call DebugCheckIndex(index)
25 return index
26 endfunction
27
28 endlibrary